Graphical user interface for building queries with hierarchical conditions

ABSTRACT

The present invention generally provides methods, systems and articles of manufacture for programmatically providing a user interface for creating queries. In one embodiment, graphical user interface content which defines a graphical user interface is provided. The graphical user interface comprises (i) a region for displaying conditions of a query; and (ii) a first graphical element for initiating a process of combining two or more conditions of the query together with logic values to form a complex condition. In another embodiment, the graphical user interface further comprises a second graphical element for initiating a process of separating two or more conditions of a complex condition.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention generally relates to data processing andmore particularly to user interfaces for accessing data.

[0003] 2. Description of the Related Art

[0004] Databases are computerized information storage and retrievalsystems. A relational database management system is a computer databasemanagement system (DBMS) that uses relational techniques for storing andretrieving data. The most prevalent type of database is the relationaldatabase, a tabular database in which data is defined so that it can bereorganized and accessed in a number of different ways.

[0005] Regardless of the particular architecture, in a DBMS, arequesting entity (e.g., an application or the operating system) demandsaccess to a specified database by issuing a database access request.Such requests may include, for instance, simple catalog lookup requestsor transactions and combinations of transactions that operate to read,change and add specified records in the database. These requests aremade using high-level query languages such as the Structured QueryLanguage (SQL). Illustratively, SQL is used to make interactive queriesfor getting information from and updating a database such asInternational Business Machines' (IBM) DB2, Microsoft's SQL Server, anddatabase products from Oracle, Sybase, and Computer Associates. The term“query” denominates a set of commands for retrieving data from a storeddatabase. Queries take the form of a command language that letsprogrammers and programs select, insert, update, find out the locationof data, and so forth.

[0006] Often, the queries take the form of hierarchical conditions. Asdefined herein, a simple condition is a comparison operation (e.g., >,<, =). An illustrative simple condition is (employeeName=‘Rich’). One ormore simple conditions may then be grouped together by Boolean logicoperators to produce complex (or grouped) conditions. An example of acomplex condition is ((employeeName=‘Rich’) OR (employeeName=‘John’)).Further, simple conditions and complex conditions may be connected byBoolean logic operators to produce a hierarchy of conditions. Therepresentation of hierarchical conditions (including complex/groupedconditions) in a visual layout where users can intuitively manipulatethe groups presents substantial difficulties. The problem is furthercomplicated when the user interface to the underlying data must be agraphical user interface (GUI), such as a web browser, because of thelimited GUI elements that are available to work with.

[0007] To understand the unique difficulties presented by hierarchicalconditions consider the following illustrations.

[0008] Data Hierarchy Illustration <employee><firstName>Rich</firstName> <lastName>Dettinger</lastName> </employee>

[0009] Condition Hierarchy Illustration <AND> <OR> <employeeName =‘Rich’> <employeeName = ‘John’> <employeeHire before 01/01/2000>

[0010] The first illustration (Data Hierarchy Illustration) is an XMLdata document fragment which has an obvious meaning. Specifically, thefirstName and the lastName belong to the employee. It is thereforefeasible to show only <employee> without loss of meaning because usershave a fundamental understanding of the whole structure.

[0011] In contrast, the hierarchy of conditions illustrated above(Condition Hierarchy Illustration) is simply unrelated groupings. Whenthe data represents conditions, a user interface cannot selectively notshow subconditions because the user loses all context. This is becausethe hierarchy of conditions is arbitrary. For example, the aboveillustrated condition hierarchy represents the following relationalexpression: ((employeeName=‘Rich’) OR (employeeName=‘John’)) AND(employeeHire before 01/01/200). However, there is no reason that a usermay not want the following query instead: (employeeName=‘Rich’) OR((employeeName=‘John’) AND (employeeHire before 01/01/200)). This latterexpression is considerably different than the first, but equally valid.

[0012] Accordingly, the ability to represent hierarchical conditions(including complex/grouped conditions) in a visual layout where userscan intuitively manipulate the groups it critical to being able togenerate valid mathematical operations, relational database queries,etc.

[0013] Therefore, there is a need for a method and system for visuallyrepresenting hierarchical conditions capable of being manipulated byusers.

SUMMARY OF THE INVENTION

[0014] The present invention generally is directed to a method, systemand article of manufacture for visually representing hierarchicalconditions capable of being manipulated by users.

[0015] One embodiment provides a method of programmatically providing auser interface for creating queries, the method comprises providinggraphical user interface content which defines a graphical userinterface. In one embodiment, the graphical user interface comprises (i)a region for displaying conditions of a query; and (ii) a firstgraphical element for initiating a process of combining two or moreconditions of the query together with logic values to form a complexcondition.

[0016] In another embodiment, a method of programmatically providing auser interface for creating queries, comprising generating graphicaluser interface (GUI) content which, when processed by a GUI-basedprogram, defines the aforementioned graphical user interface. The methodfurther comprises, in response to a user event activating the firstgraphical element, (i) combining two or more user-selected conditions ofthe query together to form the complex condition; and (ii) outputtinginformation which, when rendered on a display device, displays thecomplex condition.

[0017] Still another embodiment provides a computer-readable mediumcontaining a program which, when executed by a processor, performs theaforementioned methods.

[0018] Yet another embodiment provides a computer, comprising a memorycontaining at least an application; and a processor communicablyconnected to the memory and which, when executing the application,performs an operation of generating a user interface for creatingqueries. The operation comprises generating graphical user interfacecontent which defines a graphical user interface, comprising: (i) aregion for displaying conditions of a query; and (ii) a first graphicalelement for initiating a process of combining two or more conditions ofthe query together with logic values to form a complex condition.

BRIEF DESCRIPTION OF THE DRAWINGS

[0019] So that the manner in which the above recited features of thepresent invention are attained and can be understood in detail, a moreparticular description of the invention, briefly summarized above, maybe had by reference to the embodiments thereof which are illustrated inthe appended drawings.

[0020] It is to be noted, however, that the appended drawings illustrateonly typical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

[0021]FIG. 1 is a computer system illustratively utilized in accordancewith the invention;

[0022]FIG. 2 is a graphical user interface screen for initiating theprocess of adding a condition to a query.

[0023]FIG. 3 is a graphical user interface screen for adding a birthdate as a condition to a query.

[0024]FIG. 4 is a graphical user interface screen displaying existingconditions to a query and from which a user may add additionalconditions to the query and execute the query.

[0025]FIG. 5 is the graphical user interface screen of FIG. 4 afterbeing updated with additional conditions.

[0026]FIG. 6 is a graphical user interface screen from which a user maygroup conditions to form a complex condition.

[0027]FIG. 7 is the graphical user interface screen of FIG. 4 afterhaving been updated to reflect grouped conditions.

[0028]FIG. 8 is a graphical user interface screen from which a user mayand group conditions of a complex condition.

[0029] FIGS. 9-11 illustrate simplified methods of arranging groupedconditions without regard to first level Boolean logic values.

[0030] FIGS. 12-13 illustrate simplified methods of arranging ungroupedconditions without regard to first level Boolean logic values.

[0031] FIGS. 14-17 illustrate the arrangement of conditions withreference to intermediate first level Boolean logic values.

[0032]FIG. 18 shows an example of a subtree generated for a user inputdate range for a specific test.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0033] The present invention generally is directed to a system, methodand article of manufacture for visually representing hierarchicalconditions capable of being manipulated by users. In one embodiment, agraphical user interface comprises a first graphical element forinitiating a process of combining two or more conditions of a querytogether with logic values to form a complex condition. In anotherembodiment, the graphical user interface comprises a second graphicalelement for initiating a process of separating two or more conditions ofthe complex condition.

[0034] One embodiment of the invention is implemented as a programproduct for use with a computer system such as, for example, thecomputer system 100 shown in FIG. 1 and described below. The program(s)of the program product defines functions of the embodiments (includingthe methods described herein) and can be contained on a variety ofsignal-bearing media. Illustrative signal-bearing media include, but arenot limited to: (i) information permanently stored on non-writablestorage media (e.g., read-only memory devices within a computer such asCD-ROM disks readable by a CD-ROM drive); (ii) alterable informationstored on writable storage media (e.g., floppy disks within a diskettedrive or hard-disk drive); or (iii) information conveyed to a computerby a communications medium, such as through a computer or telephonenetwork, including wireless communications. The latter embodimentspecifically includes information downloaded from the Internet and othernetworks. Such signal-bearing media, when carrying computer-readableinstructions that direct the functions of the present invention,represent embodiments of the present invention.

[0035] In general, the routines executed to implement the embodiments ofthe invention, may be part of an operating system or a specificapplication, component, program, module, object, or sequence ofinstructions. The software of the present invention typically iscomprised of a multitude of instructions that will be translated by thenative computer into a machine-readable format and hence executableinstructions. Also, programs are comprised of variables and datastructures that either reside locally to the program or are found inmemory or on storage devices. In addition, various programs describedhereinafter may be identified based upon the application for which theyare implemented in a specific embodiment of the invention. However, itshould be appreciated that any particular nomenclature that follows isused merely for convenience, and thus the invention should not belimited to use solely in any specific application identified and/orimplied by such nomenclature.

[0036]FIG. 1 depicts a block diagram of a networked system 100 in whichembodiments of the present invention may be implemented. In general, thenetworked system 100 includes a client (e.g., user's) computer 102(three such client computers 102 are shown) and at least one server 104(five such servers 104 are shown). The client computer 102 and theserver computer 104 are connected via a network 126. In general, thenetwork 126 may be a local area network (LAN) and/or a wide area network(WAN). In a particular embodiment, the network 126 is the Internet.

[0037] The client computer 102 includes a Central Processing Unit (CPU)110 connected via a bus 130 to a memory 112, storage 114, an inputdevice 116, an output device 119, and a network interface device 118.The input device 116 can be any device to give input to the clientcomputer 102. For example, a keyboard, keypad, light-pen, touch-screen,track-ball, or speech recognition unit, audio/video player, and the likecould be used. The output device 119 can be any device to give output tothe user, e.g., any conventional display screen. Although shownseparately from the input device 116, the output device 119 and inputdevice 116 could be combined. For example, a display screen with anintegrated touch-screen, a display with an integrated keyboard, or aspeech recognition unit combined with a text speech converter could beused.

[0038] The network interface device 118 may be any entry/exit deviceconfigured to allow network communications between the client computer102 and the server computers 104 via the network 126. For example, thenetwork interface device 118 may be a network adapter or other networkinterface card (NIC).

[0039] Storage 114 is preferably a Direct Access Storage Device (DASD).Although it is shown as a single unit, it could be a combination offixed and/or removable storage devices, such as fixed disc drives,floppy disc drives, tape drives, removable memory cards, or opticalstorage. The memory 112 and storage 114 could be part of one virtualaddress space spanning multiple primary and secondary storage devices.

[0040] The memory 112 is preferably a random access memory sufficientlylarge to hold the necessary programming and data structures of theinvention. While the memory 112 is shown as a single entity, it shouldbe understood that the memory 112 may in fact comprise a plurality ofmodules, and that the memory 112 may exist at multiple levels, from highspeed registers and caches to lower speed but larger DRAM chips.

[0041] Illustratively, the memory 112 contains an operating system 124.Illustrative operating systems, which may be used to advantage, includeLinux and Microsoft's Windows. More generally, any operating systemsupporting the functions disclosed herein may be used.

[0042] The memory 112 is also shown containing a browser program 122that, when executed on CPU 110, provides support for navigating betweenthe various servers 104 and locating network addresses at one or more ofthe servers 104. In one embodiment, the browser program 122 includes aweb-based Graphical User Interface (GUI), which allows the user todisplay Hyper Text Markup Language (HTML) information. More generally,however, the browser program 122 may be any GUI-based program capable ofrendering the information transmitted from the server computer 104.

[0043] Each server computer 104 may by physically arranged in a mannersimilar to the client computer 102. Accordingly, each server computer104 is shown generally comprising a CPU 130, a memory 132, and a storagedevice 134, coupled to one another by a bus 136. Memory 132 may be arandom access memory sufficiently large to hold the necessaryprogramming and data structures that are located on the server computer104.

[0044] As shown, the memory 132 includes a Hypertext Transfer Protocol(http) server process 138 (e.g., a web server) adapted to servicerequests from the client computer 102. For example, the process 138 mayrespond to requests to access a data repository 142, whichillustratively resides on the server 104. In particular, incoming clientrequests for data from the data repository 142 invoke an application140. When executed by the processor 130, the application 140 causes theserver computer 104 to perform the steps or elements embodying thevarious aspects of the invention, including accessing the datarepository 142. In one embodiment, the application 140 comprises aplurality of servlets configured to build a graphical user interface(GUI), which is then rendered by the browser program 102. Embodiments ofGUIs will be described below.

[0045]FIG. 1 is merely one hardware/software configuration for thenetworked client computer 102 and server computer 104. Embodiments ofthe present invention can apply to any comparable hardwareconfiguration, regardless of whether the computer systems arecomplicated, multi-user computing apparatus, single-user workstations,or network appliances that do not have non-volatile storage of theirown. Further, it is understood that while reference is made toparticular markup languages, including HTML, the invention is notlimited to a particular language, standard or version. Accordingly,persons skilled in the art will recognize that the invention isadaptable to other markup languages as well as non-markup languages andthat the invention is also adaptable future changes in a particularmarkup language as well as to other languages presently unknown.Likewise, the http server process 138 shown in FIG. 1 is merelyillustrative and other embodiments adapted to support any known andunknown protocols are contemplated.

[0046] Referring now to FIGS. 2-7, a series of graphical user interfacesare shown illustrating the user interfaces defined by the application140. By way of illustration, the graphical user interfaces shown inFIGS. 2-7 are specific to accessing medical data. However, embodimentsof the invention may be used to advantage with any type of informationincluding, for example, financial information, employment information,etc. In general, the graphical user interfaces shown in FIGS. 2-7 allowa user to build queries comprising conditions added by the user. Recallthat, as defined herein, a simple condition is a comparison operation.An illustrative simple condition is (DateOfBirth=‘1942/01/01’). Thus,adding a simple condition to a query generally involves allowing theuser to select operands and a comparison operator (e.g., >, <, =). Inone embodiment, when a user initially invokes the application 140 viathe browser program 122, the application 140 returns HTML content whichis rendered by the browser program 122 in the form of a first GUI 200,shown in FIG. 2. The GUI 200 is the first of a series of screens which auser uses to add a condition to a query. In general, the GUI 200includes a plurality of condition categories 202-210 from which a usermay select. The condition categories shown include “demographics” 202,“tests and laboratory results” 204, “reports” 206, “diagnostic usingICD-9” 208, and “diagnostic using DRG” 210. Each of the conditioncategories has an associated field 212-220 from/into which a value maybe selected/input. Some fields (e.g., fields 212-216) are drop-downmenus, while others are text boxes (e.g., fields 218-220) for receivinguser input. In the latter case, the fields may have associated Browsebuttons 222-224 to facilitate user selection of valid values.

[0047] Once a condition category and value have been selected, the userclicks on the Next button 226. Clicking the Next button 226 causes thebrowser program 122 to render (according to information provided by theapplication 140) the next appropriate graphical user interface necessaryto continue the process of adding a condition. In this manner, the usermay be presented with a series of graphical user interfaces necessary toadd a condition. By way of example, assume that the user has selectedthe demographic condition category 202 and the “date of birth” valuefrom the drop-down menu 212. Upon pressing the Next button 226, the useris presented with a second GUI 300 shown in FIG. 3. The GUI 300comprises a comparison operator drop-down menu 302 from which a user mayselect a comparison operator (e.g., >, <, =) and a date field 304 intowhich a user may input a date according to a prescribed format (e.g.,“yyyy/mm/dd”). The process of adding the date of birth condition iscompleted when the user clicks on the OK button 306.

[0048] When the user has completed the process of adding a condition(e.g., such as after clicking the OK button 306), the user is presentedwith the GUI 400 shown in FIG. 4. The resulting conditions are shown ina condition column 402. In the present example, a first row of thecondition column 402 shows the date of birth condition added using theGUIs 200 and 300 described above. The user may add another condition byclicking the “Add a Condition” button 404. By repeating similar stepsfor each of the other available condition categories and values, anynumber of conditions may be added to a query. By way of illustration,the refreshed/updated GUI 400 shown in FIG. 5 shows a total of threeconditions (including the date of birth condition described above), eachof which were added by stepping through the graphical user interfacesfor adding a condition (e.g., the GUIs 200 and 300). Further, althoughnot shown, adding a condition may require any number of other graphicaluser interfaces. In particular, a plurality of additional graphical userinterfaces may be required for more complicated conditions, such asranges. The particular number, content, design and elements of suchgraphical user interfaces may be determined by persons skilled in theart according to aspects of the invention.

[0049] It should be understood that each of the resulting conditions(examples of which are shown in FIG. 5) is a predefined possibility,according to the available condition categories and values provided bythe graphical user interfaces for adding a condition (e.g., the GUIs 200and 300). By preventing the possibility of unexpected user modificationsto a query, at least one aspect of the invention eliminates the need fora parser.

[0050] After the first condition has been added, each of the subsequentconditions are related to one another to the first condition by aBoolean logic value/operator, referred to herein as a first levelBoolean logic value. Referring to FIG. 5, the first level Boolean logicvalues are shown in a pair of columns 502, 504. The first level Booleanlogic values AND and OR are selected from drop-down menus 506, 508 inthe first column 502. An AND/OR drop-down menu is located between eachcondition. Accordingly, in the illustration shown in FIG. 5, a firstdrop-down menu 506 is located between the “date of birth” condition andthe “gender” condition and a second drop-down menu 508 is locatedbetween the “gender” condition and a “hemoglobin” condition. In oneembodiment, the first level Boolean logic value defaults to AND for eachcondition added after the first condition. A user may then change thedefault value to OR using the drop-down menu. Alternatively, the usermay negate the condition by checking the appropriate NOT checkbox in thesecond column 504.

[0051] Once two or more conditions have been added to a query, two ormore conditions may then be grouped together by Boolean logic values,referred to herein as second level Boolean logic values, to producecomplex (or grouped) conditions. An example of a complex condition is((employeeName=‘Rich’) OR (employeeName=‘John’)). Further, simpleconditions and complex conditions may be connected by Boolean logicvalues to produce a hierarchy of conditions. In one embodiment, thefirst graphical element used to group conditions together is a “GroupConditions” button 510.

[0052] In one embodiment, pressing the “Group Conditions” button 510causes the application 140 to generate the GUI 600 shown in FIG. 6. TheGUI 600 displays each of the available conditions and an associatedcheckbox 602 for each condition. The user selects which conditions areto be grouped together by checking the appropriate checkbox 602.Illustratively, the “gender” and the “hemoglobin” conditions areselected. The GUI 600 further provides and “AND Group” button 604 and an“OR Group” button 606, for ANDing or Oring the selected groups. Assume,by way of illustration, that a user clicks the “AND Group” button 604.The result of this action is shown by the updated GUI 500 in FIG. 7.Specifically, only to conditions 702, 704 remain, with the secondcondition 704 being a complex condition comprising to sub conditionsrelated by a Boolean AND. Further, the two conditions 702, 704 arethemselves related by a Boolean AND, shown in the drop-down menu 506.

[0053] Assume now that a user desires to ungroup the second condition704. To facilitate this task, the GUI 500 (shown in FIG. 7) includes an“Undo Grouped Conditions” button 706. Pressing the “Undo GroupedConditions” button 706 causes the application 140 to generate the GUI800 shown in FIG. 8. The GUI 800 displays each of the existingconditions and an associated checkbox 802. In alternative embodiment,only the complex conditions (such as the second condition 704 in thiscase) are shown in the GUI 800. In any event, to ungroup a complexcondition, the user checks the appropriate checkbox 802 and then clicksthe OK button 804. In this case, the result of ungrouping the secondcondition 704 is shown by the GUI 500 and FIG. 5. That is, theconditions are returned to their original ungrouped states.

[0054] The current structure of a given query may be viewed by a user ina search summary section 520 of the GUI 500 shown in FIG. 5 and FIG. 7.In one embodiment, the query displayed in a search summary section 520is updated by clicking a “Refresh Search Summary” button 522. Once thedesired query has been built, the user may execute the query by pressingthe “Run Search” button 524. In particular, invokes a function of theapplication 140 which performs the execution.

[0055] The particular manner in which conditions are arranged inresponse to grouping and ungrouping may be handled in any number ofways. However, for purposes of illustration, some embodiments forarranging the conditions will be described with reference to FIGS. 9-17.In general, FIGS. 9-13 illustrate simplified methods of arrangingconditions without regard to first level Boolean logic values. Thearrangements of FIGS. 9-12 illustrate the rule that a resulting complexcondition is placed on the level of the highest level sub condition. Inthe illustrative embodiments, the conditions are arranged vertically inorder from top to bottom, with the topmost condition being the highestlevel condition. However, the conditions may be arranged in any manner,including horizontally. Regardless of the particular manner ofarrangement, the rules described herein for arranging the conditions maystill be applied.

[0056] Referring first FIG. 9, an initial arrangement 902 of fourconditions is shown. Two conditions (B and D) are selected and ANDedtogether to produce a resulting arrangement 904. Note that the resultingcomplex condition (B AND D) is located where the simple subcondition Bwas previously located. FIG. 10 and FIG. 11 show initial 1002, 1102 andfinal arrangements 1004, 1104 illustrating the same rule for ORingconditions where the initial arrangements 1002, 1102 include complexconditions.

[0057] Referring now to FIG. 12, an illustration of ungrouping a complexcondition 1202 is shown. The resulting arrangement 1204 illustrates thatthe only conditions at the highest nested level (defined by theoutermost parentheses) are ungrouped for each ungrouping event.Accordingly, conditions A and C are ungrouped, while conditions B and Dremain grouped in a complex condition. A user desiring to ungroup theconditions B and D may repeat the ungrouping steps, beginning withclicking on the “Undo Grouped Conditions” button 706 shown in FIG. 7.The user is then presented with the initial arrangement 1302 shown inFIG. 13. Following the successful ungrouping of the complex condition (BAND D), the conditions are shown in their final arrangement 1304. Notethat the order of the conditions in the final arrangement 1304 isdifferent from their original arrangement 902 shown in FIG. 9. This isbecause, in the illustrative embodiment, the order of subconditions in acomplex condition is preserved after ungrouping. In some aspects, thisapproach is desirable because conditions from have been moved closer toother conditions which a user is likely to combine into a group.Relatedly, this predictable placement of conditions facilitates trackingeach condition by a user as a given query structure is manipulated.

[0058] Referring now to FIGS. 14-17 the arrangement of conditions willbe described with reference to the intermediate first level Booleanlogic values. FIG. 14 shows an initial arrangement 1402 of threeconditions, one of which is a complex condition. The first condition (A)is ANDed with the complex condition, while the last condition (D) isORed with the complex condition. The first condition and the lastcondition are then ANDed together to form a group (e.g., by clicking the“AND Group” button 604 shown in FIG. 6), shown in the final arrangement1404. In this case, the first level Boolean logic value AND 1406 isretained, while the first level Boolean logic value CORE 1408 isdropped. As a result, the final arrangement 1404 includes two complexconditions ANDed together. Additional examples are provided in FIGS.15-17 in which selected conditions from an initial arrangement 1502,1602, 1702 are ANDed together to form final arrangements of 1504, 16041704. In each case, the examples exemplify a common rule: the logicalvalue immediately before a condition been moved up is dropped, and thelogical value immediately after a condition being moved out is retained.An exception to the rule is when the condition being moved out is thelast condition in the structure, such as in the case of the condition Dof the initial arrangement 1402 in FIG. 14. In this case, the firstlevel Boolean logic value is dropped (e.g. the logic value OR 1408 isdropped).

[0059] Further, aspects of the invention provider rules for handlingatomic conditions. Atomic conditions are compound conditions that theapplication 140 generates from a single logical user input. An exampleof a subtree 1800 generated for a user input date range for a specifictest is shown in FIG. 18. Because the user input is logically a singlecondition, the entire subtree 1800 is flagged as “atomic” at the top ANDnode 1802. As a result, the atomic condition exemplified by the subtree1800 is always represented in the graphical user interfaces generated bythe application 140 as a single element. While the atomic condition canbe grouped and ungrouped for other conditions (including other atomicconditions), the graphical user interface will not allow a user to breakapart the subtree 1800.

[0060] While the foregoing is directed to embodiments of the presentinvention, other and further embodiments of the invention may be devisedwithout departing from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

What is claimed is:
 1. A method of programmatically providing a userinterface for creating queries, comprising: providing graphical userinterface content which defines a graphical user interface, comprising:(i) a region for displaying conditions of a query; and (ii) a firstgraphical element for initiating a process of combining two or moreconditions of the query together with logic values to form a complexcondition.
 2. The method of claim 1, wherein the graphical userinterface further comprises a second graphic element for initiating aprocess of separating two or more conditions of the complex condition.3. The method of claim 1, wherein the region and the first graphicalelement are on a common screen of the graphical user interface.
 4. Themethod of claim 1, wherein the graphical user interface content ishypertext markup language (HTML) content.
 5. The method of claim 1,wherein the conditions comprise comparison operations.
 6. The method ofclaim 1, wherein the complex condition comprises at least one comparisonoperator and at least one Boolean operator.
 7. The method of claim 1,wherein the first graphical element comprises a button.
 8. The method ofclaim 1, wherein the graphical user interface content further defines anthird graphical element of the graphical user interface; wherein thethird graphical element, which when selected, causes the query to beexecuted.
 9. The method of claim 1, wherein providing the graphical userinterface content comprises generating the graphical user interfacecontent by an application configured to access a data repository. 10.The method of claim 9, wherein the application is a Web application. 11.The method of claim 1, further comprising, in response to a user eventactivating the first graphical element: combining two or moreuser-selected conditions of the query together to form the complexcondition; and outputting information which, when rendered on a displaydevice, displays the complex condition.
 12. The method of claim 11,wherein the output information is capable of being rendered by aGUI-based program.
 13. The method of claim 12, wherein the GUI-basedprogram is a Web browser.
 14. A method of programmatically providing auser interface for creating queries, comprising: generating graphicaluser interface (GUI) content which, when processed by a GUI-basedprogram, defines a graphical user interface, comprising: (i) a regionfor displaying conditions of a query; and (ii) a first graphical elementfor initiating a process of combining two or more conditions of thequery together with logic values to form a complex condition; inresponse to a user event activating the first graphical element: (i)combining two or more user-selected conditions of the query together toform the complex condition; and (ii) outputting information which, whenrendered on a display device, displays the complex condition.
 15. Themethod of claim 14, wherein the graphical user interface furthercomprises a second graphic element for initiating a process ofseparating two or more conditions of the complex condition.
 16. Themethod of claim 14, wherein generating the graphical user interface isperformed by an application configured to access a data repository. 17.The method of claim 14, wherein the conditions comprise comparisonoperations and wherein the complex condition comprises at least onecomparison operator and at least one Boolean operator.
 18. Acomputer-readable medium containing a program which, when executed by aprocessor, performs an operation of generating a user interface forcreating queries, the operation comprising: generating graphical userinterface content which defines a graphical user interface, comprising:(i) a region for displaying conditions of a query; and (ii) a firstgraphical element for initiating a process of combining two or moreconditions of the query together with logic values to form a complexcondition.
 19. The computer-readable medium of claim 17, wherein thegraphical user interface content is hypertext markup language (HTML)content.
 20. The computer-readable medium of claim 17, wherein theconditions comprise comparison operations.
 21. The computer-readablemedium of claim 17, wherein the complex condition comprises at least onecomparison operator and at least one Boolean operator.
 22. Thecomputer-readable medium of claim 17, wherein the first graphicalelement comprises a button.
 23. The computer-readable medium of claim17, wherein the graphical user interface further comprises a secondgraphic element for initiating a process of separating two or moreconditions of the complex condition.
 24. The computer-readable medium ofclaim 17, wherein the graphical user interface content further definesan third graphical element of the graphical user interface; wherein thethird graphical element, which when selected, causes the query to beexecuted.
 25. The computer-readable medium of claim 17, wherein thegraphical user interface content is generated by an applicationconfigured to access a data repository.
 26. The computer-readable mediumof claim 17, wherein the application is a Web application.
 27. Thecomputer-readable medium of claim 17, further comprising, in response toa user event activating the first graphical element: combining two ormore user-selected conditions of the query together to form the complexcondition; and outputting information which, when rendered on a displaydevice, displays the complex condition.
 28. The computer-readable mediumof claim 27, wherein the output information is capable of being renderedby a GUI-based program.
 29. The computer-readable medium of claim 28,wherein the GUI-based program is a Web browser.
 30. A computer-readablemedium containing a program which, when executed by a processor,performs an operation of generating a user interface for creatingqueries, the operation comprising: generating graphical user interface(GUI) content which, when processed by a GUI-based program, defines agraphical user interface, comprising: (i) a region for displayingconditions of a query; and (ii) a first graphical element for initiatinga process of combining two or more conditions of the query together withlogic values to form a complex condition; in response to a user eventactivating the first graphical element: (i) combining two or moreuser-selected conditions of the query together to form the complexcondition; and (ii) outputting information which, when rendered on adisplay device, displays the complex condition.
 31. Thecomputer-readable medium of claim 30, wherein the graphical userinterface further comprises a second graphic element for initiating aprocess of separating two or more conditions of the complex condition.32. The computer-readable medium of claim 30, wherein generating thegraphical user interface is performed by an application configured toaccess a data repository.
 33. The computer-readable medium of claim 30,wherein the conditions comprise comparison operations and wherein thecomplex condition comprises at least one comparison operator and atleast one Boolean operator.
 34. A computer, comprising: a memorycontaining at least an application; and a processor communicablyconnected to the memory and which, when executing the application,performs an operation of generating a user interface for creatingqueries, the operation comprising: generating graphical user interfacecontent which defines a graphical user interface, comprising: (i) aregion for displaying conditions of a query; and (ii) a first graphicalelement for initiating a process of combining two or more conditions ofthe query together with logic values to form a complex condition. 35.The computer of claim 34, further comprising a web server in memorywhich, when executed, transmits the graphical user interface contentreceived from the application to a Web browser via a network connection.36. The computer of claim 34, wherein the conditions comprise comparisonoperations.
 37. The computer of claim 34, wherein the complex conditioncomprises at least one comparison operator and at least one Booleanoperator.
 38. The computer of claim 34, wherein the first graphicalelement comprises a button.
 39. The computer of claim 34, wherein thegraphical user interface further comprises a second graphic element forinitiating a process of separating two or more conditions of the complexcondition.
 40. The computer of claim 34, wherein the graphical userinterface content further defines an third graphical element of thegraphical user interface; and wherein the third graphical element, whichwhen selected, causes the query to be executed.
 41. The computer ofclaim 34, further comprising a storage device accessible by theprocessor and containing a data repository from which data is retrievedin response to execution of the query.